﻿using A.M.ETO;
using A.M.Storage.I_Application;
using A.M.Storage.I_Infrastruecure;
using AutoMapper;
using DotNetCore.CAP;
using Q.M.Finance.Domain.DTO;
using Q.M.Finance.Domain.Entity;
using Q.M.Finance.Infrastruecure.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace Q.M.Finance.Application.IServices
{
    public interface IBilling_managementServices : IBaseServices<billing_management, string>
    {
        /// <summary>
        /// 添加开票管理
        /// </summary>
        /// <param name="billing_ManagementAddDTO"></param>
        /// <returns></returns>
        Task<ApiReturn<string>> Getbilling_managementAddInfo(billing_managementAddDTO billing_ManagementAddDTO);

        /// <summary>
        /// 修改开票管理
        /// </summary>
        /// <param name="incomeUpdateDTO"></param>
        /// <returns></returns>
        Task<ApiReturn<string>> Getbilling_managementUpdateInfo(billing_managementShowDTO incomeUpdateDTO);

        /// <summary>
        /// 反填开票管理
        /// </summary>
        /// <param name="invoiceid"></param>
        /// <returns></returns>
        Task<billing_management> Findbilling_managementInfo(string? invoiceid);

        /// <summary>
        /// 删除开票管理
        /// </summary>
        /// <param name="invoiceid"></param>
        /// <returns></returns>
        Task<ApiReturn<string>> Deletebilling_management(string? invoiceid);

        /// <summary>
        /// 收入开票显示+分页+查询
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageETO<billing_managementShowDTO> Getbilling_managementInfo(string? invoiceid, int pageIndex, int pageSize);
        
        
    }

}
